Как решать задачи на курсе, чтобы это все было не зря

Полезные ссылки

  1. Yandex Code

Почему важно решать по алгоритму ниже?

Главная цель курса - прокачать ваш мозг для алгоритмических задачек и успешное прохождение будет следствием, поэтому тебе важно учитывать следующее:

Хорошо, мы разобрались, что у собеседований есть своя специфика, поэтому нужно постараться максимально приблизится к условиям на собесе и cделать это можно так:

План

  1. Ставишь таймер. ДА, ЭТО ВАЖНО!
    1. таймер нужно ставить на 20 минут (к этому времени нужно придумать хотя бы одно решение)
    1. на 30 минуте должна быть решена задача
  1. Открываешь задачу на leetcode и копируешь условие, примевы входных и выходных данных, ограничения (constraints) от туда в Yandex Code как комментарий + функцию/класс, который нужно написать или делаешь скриншот и смотришь на условие там. Вот пример для задачи 1. Two Sum (~1 мин.)
  1. Читаешь условие (~1.5 мин.)
  1. Смотришь примеры и генерируешь один-два дополнительных тестовых кейсов и обязательно их записываешь (~0.5 мин.)
  1. Думаешь над идеей (~5-20 мин.)
    1. Думаешь над идеей и активно зарисовываешь/записываешь свои мысли, чтобы было проще думать. Даже не оптимальные решения можно записать если не получается придумать другой способ
    1. Оцениваешь свое решение по времени и памяти и ЗАПИСЫВАЕШЬ это комментарием в коде
    1. Думаешь можно ли оптимальнее и если кажется, что можно, то идешь к пункту a
    1. Если 20-30 минут прошло, а идей 0, то сразу идем к пункту 7 и смотрим чужие решения и разбираемся, советую добавить эту задачу в RETRY LIST, (что это такое и как пользоваться расскажу в другой статье)
  1. Пишешь код, даже если придумал не оптимальное решение, но время вышло (~5-10 мин.)
    1. Пишешь код
    1. Проверяешь только логику кода
    1. Проверяешь только синтаксис
    1. Если решение не прошло тест, то нужно занести это решение в ДНЕВНИК ОШИБОК (что это и зачем это нужно можно прочитать в другой статье)
  1. Останавливаешь таймер
  1. Убедится, что решение оптимально. Это можно сделать используя leetcode или в чатике спросить
  1. Посмотреть другие решения. И если видите более “красивое” на ваш взгляд решение, то разобраться в нем
  1. Сохранить свое решение в ДНЕВНИК УСПЕШНЫХ РЕШЕНИЙ (что это и зачем это нужно можно прочитать в другой статье)
  1. Поздравляю, ты круто справился. Обязательно поделись своим ДНЕВНИКОМ УСПЕШНЫХ РЕШЕНИЙ в чатике в конце недели